package Tree;

import com.sun.deploy.panel.ITreeNode;

public class Tree {

    private TreeNode rootNode;

    public void setRootNode(TreeNode rootNode) {
        this.rootNode = rootNode;
    }

    /**
     * 前序遍历
     */
    public void frontErgodic(){
       if (this.rootNode!=null){
           this.rootNode.frontErgodic();
       }else {
           System.out.println("空二叉树");
       }

    }

    /**
     * 中序遍历
     */
    public void middleErgodic(){
        if (this.rootNode!=null){
            this.rootNode.middleErgodic();
        }else {
            System.out.println("空二叉树");
        }
    }

    /**
     * 后序遍历
     */
    public void behindErgodic(){
        if (this.rootNode!=null){
            this.rootNode.behindErgodic();
        }else {
            System.out.println("空二叉树");
        }
    }

    /**
     * 根据id进行查询-前续遍历
     * @param id
     * @return
     */
    public TreeNode preSearch(int id){
        TreeNode treeNode=null;
        if(this.rootNode!=null){
           treeNode = this.rootNode.preSearch(id);
        }else {
            System.out.println("空");
        }
        return treeNode;
    }

    /**
     * 根据id进行查询-中续遍历
     * @param id
     * @return
     */
    public TreeNode middleSearch(int id){
        TreeNode treeNode=null;
        if(this.rootNode!=null){
            treeNode = this.rootNode.middleSearch(id);
        }else {
            System.out.println("空");
        }
        return treeNode;
    }

    /**
     * 根据id进行查询-后续遍历
     * @param id
     * @return
     */
    public TreeNode behindSearch(int id){
        TreeNode treeNode=null;
        if(this.rootNode!=null){
            treeNode = this.rootNode.behindSearch(id);
        }else {
            System.out.println("空树");
        }
        return treeNode;
    }

    public void addNode(TreeNode treeNode){
        if (this.rootNode == null){
            this.rootNode = treeNode;
        }else {
            this.rootNode.addNode(treeNode);
        }
    }

    /**
     * 根据id进行删除
     * @param id
     */
    public void delTreeNode(int id){
        if(this.rootNode != null){
            this.rootNode = rootNode.delNode(id);
        }else {
            System.out.println("空树");
        }
    }

    public void delTreeNodeAll(int id){
        if (this.rootNode != null){
            if (this.rootNode.getId() == id){
                this.rootNode=null;
            }else {
                this.rootNode.delNodeALL(id);
            }
        }else {
            System.out.println("空树");
        }
    }



}
